function a() {
    b()
}

function b() {
    c()
}

function c() {
    console.log('welcome')
}

/**
ECS = [
    globalContext
]
ECS.push(functionAContext)
ECS.push(functionBContext)
ECS.push(functionCContext)

ECS.pop()
ECS.pop()
ECS.pop()

[[scope]] 

 */

 function a() {
     function b() {
         function c() {

         }
     }
 }
 /**
a.[[scope]] = [
    globalContext.VO
]
b.[[scope]] = [
    aConext.AO,
    globalContext.VO
]
c.[[scope]] = [
    bConext.AO,
    aConext.AO,
    globalContext.VO
]


  */

var a = 1
function Sum () {
    var b = 2
    return a + b
}
Sum()
/**
Sum.[[scope]] = {
    globalContext.VO
}
ECS = [
    globalConext,
    sumContext
]
sumContext = {
    AO: {
        arguments: {
            length: 0
        },
        b: undefined
        // function 如果和 变量同名 则不覆盖
    },
    Scope: [AO, sum, [[scope]]]
}
执行时
AO: {
    arguments: {
        length: 0,
    },
    b: 2
}

ECS.pop()
*/



